import axios from "axios";
// 这是引入nprogress第三方包
import NProgress from "nprogress";
// 这是引入nprogress样式
import "nprogress/nprogress.css";


// 创建一个axios实例
const request=axios.create({
  baseURL:"/api1",
  timeout:10000,
})


// 添加请求拦截器
request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 添加一个请求进度条
  NProgress.start();

  // 权限控制:当发送ajax请求的时候,去本地存储中拿到token,并放在请求头上,随着http请求发送
  const token=localStorage.getItem("user_token");
  // 配置对象中有一个headers对象属性,在上面添加一个token属性
  config.headers.token=token;
  console.log('token',token);
  
 
  return config;
}, function (error) {
  // 对请求错误做些什么
  // NProgress.done();
  return Promise.reject(error);
});

// 添加响应拦截器
request.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  NProgress.done();
  // 只对符合我们成功逻辑的处理,否则都报异常
  // 都为20000,代表没有权限,权限不通过
  if(response.data.code===20000){
    return Promise.reject({
      message: response.data.msg,
      isLogin:false,//是否是退出状态
    });
  }
 //不等于10000,添加管理员是失败的
  if(response.data.code!==10000){
    console.log(response.data.code);

    return Promise.reject({
      message: response.data.msg,
      isLogin:true,
    });
  }
  // if不是true,进不去if 就走这个return
  return response.data.data;
}, function (error) {
  NProgress.done();
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default request;